package pro.shushi.pamirs.user.api.enmu;

import pro.shushi.pamirs.meta.annotation.Errors;
import pro.shushi.pamirs.meta.common.enmu.ExpBaseEnum;

@Errors(displayName = "用户模块错误枚举")
public enum UserExpEnumerate implements ExpBaseEnum {

    SYSTEM_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10030000, "系统异常"),
    USER_CHANGE_PWD_NO_USER_ERROR(ERROR_TYPE.BIZ_ERROR, 10030001, "修改密码失败,用户未登录"),
    USER_CHANGE_PWD_NO_PWD_ERROR(ERROR_TYPE.BIZ_ERROR, 10030002, "修改密码未输入修改后的密码"),
    USER_CHANGE_PWD_NO_USER(ERROR_TYPE.BIZ_ERROR, 10030003, "修改密码失败,当前用户异常"),
    USER_CHANGE_PWD_FAIL_ERROR(ERROR_TYPE.BIZ_ERROR, 10030004, "系统异常,修改密码失败"),
    USER_CHANGE_PWD_NO_PIC_CODE_ERROR(ERROR_TYPE.BIZ_ERROR, 10030005, "修改密码失败,验证码已失效"),
    USER_NO_REQUEST_ERROR(ERROR_TYPE.BIZ_ERROR, 10030006, "当前请求异常，无法获取请求"),
    USER_FIRST_LOGIN_ERROR(ERROR_TYPE.BIZ_ERROR, 10030007, "首次登录需修改密码"),
    USER_NAME_NULL_ERROR(ERROR_TYPE.BIZ_ERROR, 10030008, "用户名为空"),
    USER_PASSWORD_IS_NULL_ERROR(ERROR_TYPE.BIZ_ERROR, 10030009, "密码为空"),
    USER_CONFIRM_PASSWORD_IS_NULL_ERROR(ERROR_TYPE.BIZ_ERROR, 10030010, "确认密码为空"),
    USER_DO_NOT_MATCH_PASSWORD_ERROR(ERROR_TYPE.BIZ_ERROR, 10030011, "两次输入的密码不一致"),
    USER_NAME_EXIST_ERROR(ERROR_TYPE.BIZ_ERROR, 10030012, "用户名已存在"),
    USER_SQL_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10030013, "SQL错误"),
    //USER_NAME_WRONG_ERROR(ERROR_TYPE.BIZ_ERROR, 20060015, "用户名错误"),
    //USER_PASSWORD_WRONG_ERROR(ERROR_TYPE.BIZ_ERROR, 20060016, "密码错误"),
    USER_NAME_OR_PASSWORD_WRONG_ERROR(ERROR_TYPE.BIZ_ERROR, 10030014, "用户名或密码错误"),
    USER_OLD_NEW_PASSWORD_RAW_ERROR(ERROR_TYPE.BIZ_ERROR, 10030015, "用户密码错误"),
    USER_PARSE_CACHE_KEY_ERROR(ERROR_TYPE.BIZ_ERROR, 10030016, "解析缓存key失败"),
    USER_PASSWORD_SIMPLE_OR_SIZE_NOT_MATCH_ERROR(ERROR_TYPE.BIZ_ERROR, 10030017, "密码不符合格式要求，请输入 8 至 32 位 并且 至少包含一位大写字母、小写字母及特殊字符：~!@#$%^&*()[]{}<>?\\+的密码，且不能包含空格"),
    USER_VERIFICATION_CODE_IS_NULL_ERROR(ERROR_TYPE.BIZ_ERROR, 10030018, "验证码为空"),
    USER_VERIFICATION_CODE_NOT_MATCH_ERROR(ERROR_TYPE.BIZ_ERROR, 10030019, "验证码错误"),
    USER_PHONE_CODE_NOT_RIGHT_ERROR(ERROR_TYPE.BIZ_ERROR, 10030020, "手机号错误"),
    USER_PHONE_NO_SIGN_UP_ERROR(ERROR_TYPE.BIZ_ERROR, 10030021, "手机号不存在"),
    USER_PHONE_EXIST_ERROR(ERROR_TYPE.BIZ_ERROR, 10030022, "该手机号已经被使用"),
    USER_EMAIL_IS_NULL_ERROR(ERROR_TYPE.BIZ_ERROR, 10030023, "邮箱为空"),
    USER_EMAIL_NOT_EXISTED_ERROR(ERROR_TYPE.BIZ_ERROR, 10030024, "邮箱不存在"),
    USER_NAME_NOT_EXIST_ERROR(ERROR_TYPE.BIZ_ERROR, 10030025, "用户名不存在"),
    USER_NOT_EXIST_ERROR(ERROR_TYPE.BIZ_ERROR, 10030026, "用户不存在"),
    USER_SMS_SEND_FAIL_ERROR(ERROR_TYPE.BIZ_ERROR, 10030027, "验证码发送失败"),
    USER_VERIFY_TYPE_NULL_ERROR(ERROR_TYPE.BIZ_ERROR, 10030028, "手机号/邮箱都为空，无法判断验证码类型"),
    USER_CANT_JUDGE_VERIFY_TYPE_ERROR(ERROR_TYPE.BIZ_ERROR, 10030029, "手机号/邮箱都不为空，无法判断验证码类型"),
    USER_VERIFICATION_CODE_HAVE_NO_CORRESPONDING_TYPE_ERROR(ERROR_TYPE.BIZ_ERROR, 10030030, "验证码无对应发送类型"),
    USER_EMAIL_NOT_EXIST_ERROR(ERROR_TYPE.BIZ_ERROR, 10030031, "查询不到该邮箱注册信息"),
    USER_EMAIL_EXIST_ERROR(ERROR_TYPE.BIZ_ERROR, 10030032, "邮箱已被使用"),
    USER_VERIFICATION_CODE_EXPIRED_ERROR(ERROR_TYPE.BIZ_ERROR, 10030033, "验证码已失效，请重新获取验证码"),
    USER_LANG_ACTIVE_ERROR(ERROR_TYPE.BIZ_ERROR, 10030034, "当前激活语言包失效"),
    USER_TOPBAR_SQL_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10030035, "SQL错误"),
    USER_TOPBAR_NO_USER(ERROR_TYPE.BIZ_ERROR, 10030036, "当前用户异常"),
    USER_TOPBAR_NO_LANG(ERROR_TYPE.BIZ_ERROR, 10030037, "系统语言包异常"),
    USER_TOPBAR_LANG_ACTIVE_ERROR(ERROR_TYPE.BIZ_ERROR, 10030038, "当前激活语言包失效"),
    USER_TOPBAR_RESOURCE_FILE_ERROR(ERROR_TYPE.BIZ_ERROR, 10030039, "查找文件异常USER_TOPBAR_RESOURCE_FILE_ERROR"),
    USER_TOPBAR_NO_MODULE(ERROR_TYPE.BIZ_ERROR, 10030040, "系统查找Module异常USER_TOPBAR_NO_MODULE"),
    USER_TOPBAR_NO_MENU(ERROR_TYPE.BIZ_ERROR, 10030041, "系统查找菜单异常USER_TOPBAR_NO_MENU"),
    USER_TOPBAR_NO_VIEWACTION(ERROR_TYPE.BIZ_ERROR, 10030042, "系统查找ViewAction异常,STUDIO_NO_VIEWACTION"),
    USER_NO_WECHATWORK_CONFIG_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10030043, "企业微信登录配置错误"),
    USER_EXTERNAL_USERS_CAN_NOT_LOGIN_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10030044, "外部用户不能登录"),
    USER_DATA_NOT_SYNCHRONIZED_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10030045, "用户数据未同步"),
    USER_HAS_NO_DEPARTMENT(ERROR_TYPE.BIZ_ERROR, 10030046, "用户不存在，请联系管理员同步组织机构，并授权"),
    USER_REDIRECT_ERROR(ERROR_TYPE.BIZ_ERROR, 10030047, "重定向异常"),
    USER_LOGINLINK_ERROR(ERROR_TYPE.BIZ_ERROR, 10030048, "登录图标超链接传参异常"),
    USER_DINGLOGIN_CONFIG_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10030049, "钉钉登录配置错误"),
    USER_DINGTALK_NO_USER(ERROR_TYPE.BIZ_ERROR, 10030050, "钉钉用户不存在"),
    USER_DINGTALK_USER_ERROR(ERROR_TYPE.BIZ_ERROR, 10030051, "钉钉获取用户异常"),
    USER_TOPBAR_CONSTRUCT_ERROR(ERROR_TYPE.BIZ_ERROR, 10030052, "顶部栏构建失败"),
    USER_WECHAT_SEARCH_ACCESS_KEY_ERROR(ERROR_TYPE.BIZ_ERROR, 10030053, "查询WX Access_key失败"),
    USER_NOT_ACTIVE_ERROR(ERROR_TYPE.BIZ_ERROR, 10030054, "用户未激活"),
    USER_NOT_UNIQUE_ERROR(ERROR_TYPE.BIZ_ERROR, 10030055, "登录账号下有多个用户"),
    USER_NO_LANG(ERROR_TYPE.BIZ_ERROR, 10030056, "当前选中的语言包异常"),
    USER_GENERATE_UNIQUE_ID_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10030057, "生成唯一ID失败"),
    USER_GENERATE_UNIQUE_ID_ADD_WORKNODE_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10030058, "ID生成服务添加工作节点失败"),
    USER_GENERATE_DEFAULT_ADDRESS(ERROR_TYPE.SYSTEM_ERROR, 10030059, "只能设置一个默认地址"),
    USER_GENERATE_DEFAULT_BANK(ERROR_TYPE.SYSTEM_ERROR, 10030060, "只能设置一个默认银行账号"),
    LOGIN_NOT_MATCH_PHONE(ERROR_TYPE.BIZ_ERROR, 10030061, "用户名与手机号不一致"),
    USER_LOGIN_PIC_CODE_ERROR(ERROR_TYPE.BIZ_ERROR, 10030062, "图形验证码错误"),
    USER_CAN_NOT_ACTIVE_ERROR(ERROR_TYPE.BIZ_ERROR, 10030063, "当前用户账号未激活"),
    USER_HAS_NO_ACCESS_MODULE_ERROR(ERROR_TYPE.BIZ_ERROR, 10030064, "当前用户没有有权限进入的应用"),
    USER_LOGIN_TOO_MANY_ERROR(ERROR_TYPE.BIZ_ERROR, 10030065, "登录错误次数过多"),
    USER_CREATE_USER_PASSWORD_IS_NOT_NULL_ERROR(ERROR_TYPE.BIZ_ERROR, 10030066, "创建/修改用户时初始化密码与密码必须填写其中一项"),
    USER_CREATE_INIT_LOGIN_IS_NOT_NULL_ERROR(ERROR_TYPE.BIZ_ERROR, 10030067, "创建用户必须填写账号"),
    USER_CREATE_LOGIN_FORMAT_ERROR(ERROR_TYPE.BIZ_ERROR, 10030068, "账号仅支持数字字母和下划线.@-组合,不支持其他字符，账号长度应是1-35位"),
    USER_CREATE_PHONE_EXISTED_ERROR(ERROR_TYPE.BIZ_ERROR, 10030069, "手机号已经被注册,请更新手机号"),
    USER_CREATE_PHONE_NOT_FORMAT_ERROR(ERROR_TYPE.BIZ_ERROR, 10030070, "手机格式错误,请更新手机号"),
    USER_CREATE_EMAIL_EXISTED_ERROR(ERROR_TYPE.BIZ_ERROR, 10030071, "邮箱已经被注册,请更新邮箱"),
    USER_CREATE_EMAIL_NOT_FORMAT_ERROR(ERROR_TYPE.BIZ_ERROR, 10030072, "邮箱格式错误,请更新邮箱"),
    USER_CREATE_USER_FAIL(ERROR_TYPE.BIZ_ERROR, 10030073, "新建用户失败，请稍后重试"),
    USER_CREATE_LOGIN_EXISTED_ERROR(ERROR_TYPE.BIZ_ERROR, 10030074, "账号已经被注册,请更新账号"),
    USER_MODIFY_PWD_ERROR(ERROR_TYPE.BIZ_ERROR, 10030075, "修改密码失败，服务器异常，请稍后重试"),
    USER_UPDATE_INIT_LOGIN_CANT_CHANGE_ERROR(ERROR_TYPE.BIZ_ERROR, 10030076, "修改用户不允许修改账号"),
    USER_CREATE_AND_UPDATE_INIT_PASSWORD_FORMAT_ERROR(ERROR_TYPE.BIZ_ERROR, 10030077, "初始化密码长度至少应该是1位"),
    USER_NEED_PIC_CODE_ERROR(ERROR_TYPE.BIZ_ERROR, 10030078, "请输入图形验证码"),
    USER_REFRESH_PIC_CODE_ERROR(ERROR_TYPE.BIZ_ERROR, 10030079, "图形验证码已过期，请刷新图形验证码"),
    USER_MODIFY_USER_INFO_ERROR(ERROR_TYPE.BIZ_ERROR, 10030080, "修改用户信息失败，该用户不存在"),
    USER_MODIFY_USER_INFO_NO_USER_ERROR(ERROR_TYPE.BIZ_ERROR, 10030081, "修改用户信息失败，该用户不存在"),
    USER_RESET_PWD_NULL_LOGIN_ERROR(ERROR_TYPE.BIZ_ERROR, 10030082, "重置用户密码失败，需要填写用户账号"),
    USER_RESET_PWD_ERROR_LOGIN_ERROR(ERROR_TYPE.BIZ_ERROR, 10030083, "重置用户密码失败，用户账号错误"),
    USER_RESET_PWD_USER_NOT_EXIST_ERROR(ERROR_TYPE.BIZ_ERROR, 10030084, "重置用户密码失败，用户不存在"),
    USER_DELETE_NOT_EXISTS_ERROR(ERROR_TYPE.BIZ_ERROR, 10030085, "删除用户失败，用户不存在"),
    USER_INITIALIZE_PWD_ERROR(ERROR_TYPE.BIZ_ERROR, 10030086, "初始化用户密码失败，参数错误"),
    USER_TENANT_NO_REL_ERROR(ERROR_TYPE.BIZ_ERROR, 10030087, "用户和租户之间的关系不存在"),
    TENANT_NOT_EXISTS_ERROR(ERROR_TYPE.BIZ_ERROR, 10030088, "租户不存在"),
    PARAM_CHECK_ERROR(ERROR_TYPE.BIZ_ERROR, 10030089, "数据异常，传入参数为空"),
    USER_MODIFY_NOT_EXISTED_ERROR(ERROR_TYPE.BIZ_ERROR, 10030090, "要操作的用户不存在"),
    USER_ALREADY_EXISTED_ERROR(ERROR_TYPE.BIZ_ERROR, 10030091, "要创建的用户已经存在"),
    USER_REL_DELETE_FAILED_ERROR(ERROR_TYPE.BIZ_ERROR, 10030092, "用户租户关联关系删除失败"),
    USER_REL_CREATE_FAILED_ERROR(ERROR_TYPE.BIZ_ERROR, 10030093, "用户租户关联关系创建失败"),
    USER_DELETE_FAILED_ERROR(ERROR_TYPE.BIZ_ERROR, 10030094, "用户删除失败"),
    USER_CREATE_OR_UPDATE_FAILED_ERROR(ERROR_TYPE.BIZ_ERROR, 10030095, "用户创建或更新失败"),
    USER_MODIFY_NOT_UNIQUE(ERROR_TYPE.BIZ_ERROR, 10030096, "需要操作的用户已经存在，且不唯一"),
    USER_EMAIL_SEND_FAIL_ERROR(ERROR_TYPE.BIZ_ERROR, 10030097, "邮件确认发送失败"),
    USER_EMAIL_TEMPLATE_FAIL_ERROR(ERROR_TYPE.BIZ_ERROR, 10030098, "邮件模板未配置"),
    USER_EMAIL_CONFIRMATION_CODE_IS_NULL_ERROR(ERROR_TYPE.BIZ_ERROR, 10030099, "邮件确认码为空"),
    USER_EMAIL_MISS_EVENT_IS_NULL_ERROR(ERROR_TYPE.BIZ_ERROR, 10030100, "发送邮件事件参数丢失"),
    USER_PHONE_MISS_EVENT_IS_NULL_ERROR(ERROR_TYPE.BIZ_ERROR, 10030101, "发送手机验证码事件参数丢失"),
    USER_MODIFY_PHONE_EMAIL_BOTH_EMPTY(ERROR_TYPE.BIZ_ERROR, 10030102, "该用户手机和邮箱都为空，不能修改"),
    USER_SESSION_ID_ISNULL(ERROR_TYPE.BIZ_ERROR, 10030103, "用户未登录请先登录"),
    USER_FIRST_LOGIN_PE_ERROR(ERROR_TYPE.BIZ_ERROR, 10030104, "首次登录，请使用用户名/邮箱登录绑定我的小程序账号"),
    USER_LOGIN_CANNOT_REG(ERROR_TYPE.BIZ_ERROR, 10030105, "查询不到你的信息，暂无法登录，请联系管理员"),
    USER_WX_MINI_APP_LOGIN_ERROR(ERROR_TYPE.BIZ_ERROR, 10030106, "微信登录失败,{}"),
    USER_WX_MINI_APP_LOGIN_SESSION_ERROR(ERROR_TYPE.BIZ_ERROR, 10030107, "未获取到微信登录会话"),
    USER_WX_MINI_APP_SUPPORT(ERROR_TYPE.BIZ_ERROR, 10030108, "暂时不支持除微信小程序外其他小程序登录"),
    USER_WA_PHONE(ERROR_TYPE.BIZ_ERROR, 10030109, "获取手机号错误"),
    USER_LOGIN_EMAIL_REG(ERROR_TYPE.BIZ_ERROR, 10030110, "首次登录，请使用用户名/邮箱登录绑定我的小程序账号"),
    USER_SMS_SMS_TEMPLATE_ISNOTEXISTED(ERROR_TYPE.BIZ_ERROR, 10030111, "无法获取对应短信模板"),
    USER_ID_ISNULL(ERROR_TYPE.BIZ_ERROR, 10030112, "用户Id不允许为空"),
    THIRD_PARTY_USERNAME_IS_BLANK(ERROR_TYPE.BIZ_ERROR, 10030113, "第三方账号未填"),
    THIRD_PARTY_TYPE_IS_NULL(ERROR_TYPE.BIZ_ERROR, 10030114, "第三方账号类型为空"),
    USER_PARAM_EMPTY_ERROR(ERROR_TYPE.BIZ_ERROR, 10030115, "参数不允许为空"),
    USER_PARAM_EMAIL_ERROR(ERROR_TYPE.BIZ_ERROR, 10030116, "邮箱校验失败，规则： 字母或者数字开头 支持 -（连接符）、字母、数字、下划线、点 有且只能包含一个@ 符 @符后面必须以字母或者数字开头，支持 -（连接符）、字母、数字、下划线、点 @符后面必须包含至少一个点；最后一个点后面至少有两位字母，且只能有字母"),
    USER_PARAM_LOGIN_ERROR(ERROR_TYPE.BIZ_ERROR, 10030117, "登录账号校验失败，规则：账号仅支持数字字母和下划线.@-组合,不支持其他字符，账号长度应是1-35位"),
    USER_PARAM_PHONE_ERROR(ERROR_TYPE.BIZ_ERROR, 10030118, "手机号校验失败，规则：长度为11位，数字1开头，第二位数字范围是3～9"),
    USER_PARAM_NAME_ERROR(ERROR_TYPE.BIZ_ERROR, 10030119, "名称校验失败，规则：2-32个字，仅支持中文、英文和数字，且必须以中文或英文开头"),
    USER_PARAM_NICKNAME_ERROR(ERROR_TYPE.BIZ_ERROR, 10030120, "昵称校验失败，规则：2-32个字，仅支持中文、英文和数字，且必须以中文或英文开头"),
    USER_PARAM_REALNAME_ERROR(ERROR_TYPE.BIZ_ERROR, 10030121, "姓名校验失败，规则：2-32个字，仅支持中文、英文和数字，且必须以中文或英文开头"),
    USER_PARAM_IDCARD_ERROR(ERROR_TYPE.BIZ_ERROR, 10030122, "身份证校验失败，规则：15/18位身份证号"),
    USER_PARAM_REG_DATA_ERROR(ERROR_TYPE.BIZ_ERROR, 10030123, "注册日期不能超过当前时间"),
    USER_PASSWORD_NOT_FOUND_ERROR(ERROR_TYPE.BIZ_ERROR, 10030124, "用户密码不存在"),
    USER_PASSWORD_NOT_MATCHED_ERROR(ERROR_TYPE.BIZ_ERROR, 10030125, "密码输入错误"),
    // region 登录异常
    USER_USERNAME_OR_PASSWORD_ERROR(ERROR_TYPE.BIZ_ERROR, 10030126, "用户名或密码错误"),
    USER_PHONE_OR_VERIFICATION_CODE_ERROR(ERROR_TYPE.BIZ_ERROR, 10030127, "手机或验证码错误"),
    USER_EMAIL_OR_VERIFICATION_CODE_ERROR(ERROR_TYPE.BIZ_ERROR, 10030128, "邮箱或验证码错误"),
    // endregion
    INVALID_ROLE_CODE(ERROR_TYPE.BIZ_ERROR, 10030129, "角色编码无效"),
    NAME_CANNOT_BE_EMPTY(ERROR_TYPE.BIZ_ERROR, 10030130, "姓名不能为空"),
    INVALID_ROLE_CODE_EXCEPTION(ERROR_TYPE.BIZ_ERROR, 10030131, "{} 无效的角色编码,请进行修改后重新导入");

    private final ERROR_TYPE type;

    private final int code;

    private final String msg;

    UserExpEnumerate(ERROR_TYPE type, int code, String msg) {
        this.type = type;
        this.code = code;
        this.msg = msg;
    }

    @Override
    public ERROR_TYPE type() {
        return type;
    }

    @Override
    public int code() {
        return code;
    }

    @Override
    public String msg() {
        return msg;
    }

    public static UserExpEnumerate valueByCode(Integer code) {
        for (UserExpEnumerate value : UserExpEnumerate.values()) {
            if (code.equals(value.code))
                return value;
        }
        return null;
    }
}
